﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using NUnit.Framework;

using Lottery.MediaData.Core;

namespace Lottery.UnitTest.L14 {
    [TestFixture]
    public class Table3 {
        [Test]
        public void Test() {
            var data = new List<DZX>();

            // 1
            data.Add(new DZX { D = "0", Z = "1", X = "3", PreNumber = "1", PreText = "中" });
            // 2
            data.Add(new DZX { D = "0", Z = "1", X = "3", PreNumber = "0", PreText = "大" });
            // 3
            data.Add(new DZX { D = "3", Z = "1", X = "0", PreNumber = "3", PreText = "大" });
            // 4
            data.Add(new DZX { D = "310", Z = "", X = "", PreNumber = "3", PreText = "大" });
            // 5
            data.Add(new DZX { D = "3", Z = "0", X = "1", PreNumber = "3", PreText = "大" });
            // 6
            data.Add(new DZX { D = "0", Z = "3", X = "1", PreNumber = "1", PreText = "小" });
            // 7
            data.Add(new DZX { D = "3", Z = "1", X = "0", PreNumber = "3", PreText = "大" });
            // 8
            data.Add(new DZX { D = "3", Z = "0", X = "1", PreNumber = "0", PreText = "中" });
            // 9
            data.Add(new DZX { D = "3", Z = "1", X = "0", PreNumber = "3", PreText = "大" });
            // 10
            data.Add(new DZX { D = "1", Z = "0", X = "3", PreNumber = "1", PreText = "大" });
            // 11
            data.Add(new DZX { D = "0", Z = "1", X = "3", PreNumber = "1", PreText = "中" });
            // 12
            data.Add(new DZX { D = "31", Z = "0", X = "", PreNumber = "1", PreText = "大" });
            // 13
            data.Add(new DZX { D = "3", Z = "10", X = "", PreNumber = "1", PreText = "中" });
            // 14
            data.Add(new DZX { D = "3", Z = "1", X = "0", PreNumber = "0", PreText = "小" });

            var result = DZXHelper.Gen(data);

            var d = new[] { 
                new[] { "0", "1", "3", "1", "", "1", "", "30", "0", "", "3", "310", "0", "1", "3" }, // 第1场
                new[] { "0", "1", "3", "0", "0", "", "", "1", "", "1", "", "10", "0", "1", "" }, // 第2场
                new[] { "3", "1", "0", "3", "3", "", "", "", "", "", "", "3", "3", "", "" }, //3
                new[] { "310", "", "", "310", "310", "", "", "", "", "", "", "310", "310", "", "" }, // 4
                new[] { "3", "0", "1", "3", "3", "", "", "1", "", "", "1", "31", "3", "", "1" }, //5
                new[] { "0", "3", "1", "1", "", "", "1", "0", "0", "", "", "10", "0", "", "1" }, //6
                new[] { "3", "1", "0", "3", "3", "", "", "10", "", "1", "0", "310", "3", "1", "0" }, // 7
                new[] { "3", "0", "1", "0", "", "0", "", "3", "3", "", "", "30", "3", "0", "" }, // 8
                new[] { "3", "1", "0", "3", "3", "", "", "1", "", "1", "", "31", "3", "1", ""}, // 9
                new[] { "1", "0", "3", "1", "1", "", "", "0", "", "0", "", "10", "1", "0", "" }, // 10
                new[] { "0", "1", "3", "1", "", "1", "", "0", "0", "", "", "10", "0", "1", ""}, // 11
                new[] { "31", "0", "", "31", "31", "", "", "0", "", "0", "", "310", "31", "0", "" }, // 12
                new[] { "3", "10", "", "10", "", "10", "", "3", "3", "", "", "310", "3", "10", "" }, // 13
                new[] { "3", "1", "0", "0", "", "", "0", "1", "", "1", "", "10", "", "1", "0" }, // 14
            };
            for (int col = 0; col < d.Length; col++)
                for (int row = 0; row < d[col].Length; row++)
                    Assert.AreEqual(d[col][row], result[col, row], string.Format("{1}-{0}", row + 1, col + 1));
        }
    }
}
